home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d8 / mskrt310.arc / MSKERM.ED < prev    next >
Text File  |  1991-03-20  |  81KB  |  1,273 lines

  1. File MSKERM.ED             MS-DOS 3.0 EDIT HISTORY                16 Jan 1990
  2.                               
  3. This is a description of the significant modifications to the MS-DOS Kermit
  4. source code beginning with the first edit after the 2.32/A release in Spring
  5. 1989, ending with the final edit to version 3.00, January 16, 1990.
  6.  
  7. You may send mail to jrd@watsun.cc.columbia.edu or to regular jrd@cc.usu.edu.
  8.                             Joe Doupnik
  9.                             (801) 750-2982 work
  10.                             Utah State Univ
  11.  
  12. 1. Data segment renamed from "datas" to be "data"
  13. 2. Stack segment renamed from "cstack" to be "stack"
  14. 3. Segment ordering, determined in mssdef.h, is now code, data, stack.
  15.    If you add segments, ensure they are placed before stack.
  16. 4. All references to  rskp  and  r  have been removed. Instead use the carry
  17.    flag to transmit success (carry clear) or failure (carry set).
  18. 5. Command line parser codes have been renamed for clarity, otherwise the
  19.    call mechanism is unchanged. Use cmeol for end of line (cmcfm), cmword
  20.    for a word (cmfile), and cmline for the rest of the line (cmtext).
  21. 6. A string handed to procedure PROMPT now needs to be asciiz so that dollar
  22.    signs can appear in it. Watch MSUxxx.asm since PROMPT is used there.
  23. 7. Space for macro definitions, and the 128 byte work buffer for each Take
  24.    file, are now allocated directly from DOS in paragraph chunks. This frees
  25.    us from the older fixed 2KB buffer.
  26. 8. MSSSET.ASM has been split into MSSSET (Sets, macros) and MSSSHO (Shows).
  27. 9. MSSFIN.ASM is no longer used, as a benefit of the segment reordering.
  28. 10. Protocol portions of the system independent code are new as a result of
  29.     adding sliding windows. Largest packet is now 2000 bytes.
  30. 11. New command SET WINDOW <number 1-31> sets an upper limit on window slots
  31.     in use; 1 is no windowing. Window negotiation and use is otherwise
  32.     automatic between Kermits. So is the final packet size within windows
  33.     (length <= 2000 / negotiated window slots, with user specs being a cap).
  34.     Thus we can have long packets within sliding windows.
  35.     The formatted file transfer screen will show "Window slots in use: <num>"
  36.     when windowing is active. 1 is normal at the receiver unless a packet is
  37.     lost.
  38. 12. New command WRITE <log file> <object>
  39.     where log file is Session, Packet, Transaction
  40.     object is date, INPUT-buffer, path, text, time, version of Kermit
  41.     Text may follow these items.
  42. 13. New IBM-PC command SET TERMINAL REPLAY <filespec> which reads and displays
  43.     the file with the current terminal emulator settings, including Tek mode.
  44. 14. The IBM-PC VT102 emulator has all system dependencies removed and handled
  45.     as simple calls on procedures located in file MSYIBM.ASM (at the end).
  46.     The emulator is scheduled for major changes to incorporate ISO level
  47.     enhancements to bring it close to the DEC VT320 level. If planned changes
  48.     to the Tek emulator are done then we will be close to a VT340 but without
  49.     split screens and dual sessions.
  50. 15. Empty disk drives are now detected before letting DOS trap us with A/R/I
  51.     except when the REMOTE HOST or PUSH commands are used.
  52. 16. Server mode allows protection by a username and a password.
  53.     New command  DISABLE LOGIN-bypass   turns on sensitivity to this pair.
  54.     Supply the templates by command SET SERVER LOGIN <username password>.
  55.     Passwords may contain embedded spaces. From the client side the user
  56.     would need to issue REMOTE LOGIN username password.
  57. 17. Show Macros <optional name> now operates in paged mode (a la More).
  58. 18. Macros can be created and removed by a calling procedure DODECOM
  59.     (the DO/DEFINE MACRO common worker routine) by preparing a command line
  60.     in global buffer rdbuf (see mssset.asm) and supplying it's length in CX.
  61.     DODECOM operates as if we had given the command DEFINE <macro definition>.
  62. 19. SPACE and REMOTE SPACE now permit a following disk drive ident (C:).
  63. --------
  64. 20. 10 April 1989 fix VT102 SET TERM CHARACTER-SET command to retain its
  65.     values across interruptions in Connect mode. Broken in MSK 2.32/A. No 
  66.     date change to mstibm.exe.
  67. 21. 17 April clear active filename in mssrcv.asm when receive operation 
  68.     finishes.
  69. ---------
  70. 22. 29 April. Many improvements from Jack Bryans, including movement of the
  71.     ports structure from msscom.asm to msx???.asm, together with removal of
  72.     the formal baud rate definitions such as b000xxx from the mssdef.h file.
  73.     Also, he separated mssset.asm into mssset.asm and msssho.asm.
  74. 23. Revise tab stop arrays and supporting code in the IBM VT102 emulator.
  75. 24. Fixup loose ends concerning Server mode and transaction logging.
  76. 25. Straighten out handling of the packet debug buffer when packets are 
  77.     preceeded by garbage. Add more screen space for visual debugging.
  78. 26. Start adding VT320 level support to the VT102 emulator. Much much more
  79.     to be done in this area so expect ups and downs.
  80. 27. Slightly revise file deletion in mssrcv.asm to help transaction logging.
  81. 28. Updated files are mssdef.h, msscom, mssfil, mssker, mssrcv, mssser,
  82.     mssset, msster, msxibm, and mszibm.asm.
  83. ---------
  84.    6 May 1989
  85. 29. Add reading of special DOS Environment SET lines when initializing Kermit.
  86.     The lines are of the form
  87.               SET KERMIT=command;another command;yet another command;etc
  88.           SET KERMIT0=
  89.           SET KERMIT1=
  90.         ...
  91.           SET KERMIT9=
  92.     as seen at DOS level.
  93.     Each can be 128 bytes long, overall. On the right of the equals sign can
  94.     be various specialized Kermit commands. Present now is INPUT-buffer-length
  95.     followed by a number (2-65535) representing the space desired in the
  96.     script INPUT buffer. Normal Kermit commands and variables cannot be
  97.     referenced in the Environment; this facility is intended mostly to control
  98.     the size of certain buffers as Kermit initializes itself. File mssker.asm
  99.     has the table, initab, of recognized keywords. Many such commands can be
  100.     placed on a single line by separating them with semicolons (Environment
  101.     style). Lines are read in the order given above, despite their order of
  102.     appearance at DOS level.
  103. 30. Remove many deceased labels and external references found by Jack Bryans.
  104.     Affects all MSS*.asm files.
  105. ----------
  106. 31. 7 May. Remove more unused material from mssdef.h, move modem structure to
  107.     MSX..., shorten structure termarg in files msster.asm and MSX/MSY. Tnx
  108.     again to Jack B. for the careful sifting.
  109. 32. Add Environment command ROLLBACK <number 0-16> for terminal emulator
  110.     screen rollback buffer. The quantity is the number of 24 line screens.
  111.     This command is likely to change slightly in the near future.
  112. 33. 8 May. New limits on ROLLBACK are 1 to 130 screens (of size found when
  113.     Kermit initializes). 130 is likely unobtainable on loaded systems. 26KB
  114.     are preallocated for COMMAND.COM copy #2. Applies to IBM PC only today.
  115. 34. 9 May. Add Bert Tyler's (NIH) new code to manage terminal emulator roll
  116.     back buffer with minimal scrolling (hence crisp paging). File msyibm.asm.
  117. 35. 10 May. Add new command SHOW MEMORY, to display free memory quantities
  118.     (the pieces and the total). Small corrections to a) rollback code and
  119.     b) Take/macro closure procedure and command echo control.
  120. 36. 14 May. Move all "include mssdef.h" lines to be at line 3 in the file, to
  121.     aid automated searching for unused tokens by Jack B.
  122. 37. Add procedure lnouts, in file mssfil.asm, which computes an ascii number
  123.     to buffer [di], but also inserts national thousands separator characters
  124.     in the ascii text. Regular lnout does not do this. The separator is in
  125.     global byte thsep computed in mssker.asm; force this to be zero temporarily
  126.     to prevent insertion. The character is obtained from DOS Get Country Info.
  127.     Separators are used in SPACE, SHOW MEMORY, SHOW STATISTICS commands.
  128. 38. Cleanups in getbaud in msxibm.asm and many places in msyibm.asm (modeline,
  129.     rollback space computation, screen initing code). SET KERMIT=ROLLBACK now
  130.     accepts a minimum value of 0 to omit all screen rollback space.
  131. 39. 16 May. Correct, I hope, problem of incorrect 8-bit quoting negotiation.
  132.     Add minor corrections to files msscom, mssrcv, msssen, mssser, msgibm,
  133.     and msyibm.asm. Reinstate Heath-19 to terminal emulation (it's ops table
  134.     got skipped in one place and H-19 was no more, sigh); file mszibm.asm.
  135. ----------
  136. 40. 22 May. Add VT320 User Definable Keys (UDKs). Key names are SET KEY verbs
  137.     \KdecF6...\KdecF14,\KdecHELP,\KdecDO,\KdecF17...\KdecF20, which represent
  138.     the corresponding keys on a DEC type LK201 keyboard. Use SET KEY to tie
  139.     these verbs to a physical key.
  140.     By default these keys send ESC [ <number><number> ~  in VT320 mode, where
  141.     the pair of ascii number digits are 17 through 34, in the order of keys
  142.     above and nothing in VT102 mode. The exceptions in VT102 mode are:
  143.     \KdecF11...\KdecF13  send ESC, BS, and LF, respectively.
  144.  
  145.      The keys may have other definitions assigned to them by the host. The
  146.      assignment mechanism is the host sends a Device Control Sequence (DCS)
  147.      of the form
  148.     DCS Pc; Pl | Ky1/St1; Ky2/St2; ... ST
  149.      where DCS is hex 90 (8-bit environment) or ESC P,
  150.      Pc is a digit of 0 to clear all UDKs before defining any (default), or
  151.      1 to clear the current UDK before redefining it,
  152.      Pl is a key lock, presently ignored, but will be 0 or 1,
  153.      | is a required Final character, hex 7c,
  154.      Kyn is a pair of digits between 17 and 34 to represent the keys as above,
  155.      / is a required separator,
  156.      Stn is the definition string written as pairs of hex digits for each final
  157.      definition byte,
  158.      ; separates items, as usual in things like escape sequences,
  159.      ST is hex 9c (8-bit environment) or ESC \.
  160.      Example: ESC P 1 | 17 / 48 65 6c 6c 6f ESC \     defines \KdecF6 to send
  161.      the string "Hello". 17 is DEC's F6 key, the pairs of hex digits spell the
  162.      word from the ASCII Left table (upper or lower case a-f is ok).
  163.      An empty string removes the definition and lets the key send ESC [ num num.
  164.      Currently a string is limited to 61 hex digits (60 plus one left over);
  165.      extras are discarded without notification.
  166. 41.  Permit 8-bit control characters, C1 stuff, if parity is NONE and DISPLAY
  167.      is 8-bits. More work will be added in this area. VT320 emulator only.
  168. 42.  Modify XON/XOFF procedure when in Connect mode. If the host sends XOFF
  169.      and we wish to send a character then emit a local Beep, cancel the XOFF,
  170.      and send the character. Other operating modes will be blocked until an
  171.      XON arrives or an internal timer expires, as usual. Present only in the
  172.      IBM PC version at this time.
  173. ---------
  174. 43.  29 May. Add the bulk of VT320 features other than character set swapping
  175.      and Sixel. Default terminal is now a VT320, with submodes of VT102, VT52,
  176.      Heath-19, and Tek 4010+. Most, but not quite all, status reports are
  177.      present. Selectable erasure will not be present.  Affects files msssho,
  178.      msyibm, mszibm.asm and mssdef.h. Much more to be done here. What a job!
  179. 44.  Add command SET TERMINAL CONTROLS 7-BIT (default) or 8-BIT to let VT320
  180.      mode use C1 8-bit control codes. C1 recognition works in only VT320 mode 
  181.      and if operating it will bypass SET DISPLAY 7/8. Note: real VT100's are
  182.      7-bit only devices.
  183. 45.  Add six more keys found on DEC LK201 keyboards: decFind, decInsert,
  184.      decRemove, decSelect, decPrev, decNext. These are keyboard verbs found
  185.      in files msuibm.asm and msyibm.asm. They send CSI 1 ... CSI 6, resp, if
  186.      the terminal is a VT320 or send nothing otherwise.
  187. 46.  30 May. Add several ANSI only cursor steering commands to mszibm.asm.
  188.      Un-break the SET TERMINAL command parser regarding obtaining bit field
  189.      arguments; that area needs redesign.
  190. ----------
  191. 47.  4 June. VT320 emulator: add more reports, add National Replacement Char
  192.      sets (12 of them), add support for ISO 2022 style G0, G1, G2, G3 display
  193.      character sets (with attendent GL and GR pointers plus single and locking
  194.      shifts). There are some loose ends concerning which character sets do
  195.      which things, particularly since VT102's and VT320's differ considerably;
  196.      I left things as VT102 char set mappings for now.
  197. 48.  Enhance command SET TERMINAL CHARACTER-SET to have options of
  198.     ASCII, British, Dutch, Finnish, French, French-Canadian, German,
  199.     Italian, Norwegian/Danish, Portugese, Spanish, Swedish, Swiss,
  200.     and ALT-Char-ROM.
  201.      Except for the first and last items these select a DEC National
  202.      Replacement Character set. When NRC's are active then 8-bit control
  203.      is turned off (back to 7-bit), as per DEC's specs. NRC's modify the
  204.      underlying basic ASCII code table by substituting up to 12 new chars.
  205. 49.  Modify SET TERMINAL CONTROLS and SET DISPLAY 8/7-bit commands in the
  206.      VT320 emulator. SET DISPLAY imposes a 7 or 8 bit wide channel for 
  207.      incoming characters; the default is 7-bit. The VT320 emulator is always
  208.      prepared to sense and act on incoming 8-bit control codes, but SET
  209.      DISPLAY can remove the high bit of chars so the C1 set is not used
  210.      (exception is when SET TRANSLATION yields 8-bit output, it follows
  211.      directly after the SET DISPLAY filter and preceeds testing for controls).
  212.      SET TERMINAL CONTROLS 7-bit or 8-bit determines whether outgoing control
  213.      codes can be sent in short 8-bit or long 7-bit format (8-bit CSI becomes
  214.      7-bit ESC [, etc). The host can also modify the CONTROLS setting. Default
  215.      is CONTROLS of 7-bit. Recall, outgoing are modified by CONTROLS, incoming
  216.      see DISPLAY first and otherwise always react to 8-bit control codes.
  217.      DEC seems to have arranged (sic) things this way.
  218.  
  219.      Hint for VAX TPU/EVE users: SET DISPLAY 8-bit, attach verb \kdecHelp to
  220.      a key, leave SET TERM CONTROLS at 7-bit if you like (VMS will do so
  221.      anyway in response to a VMS SET TERM/INQUIRE command), and run happily.
  222. 50.  5 June. Fix Take file access priv mask for DOS 2.xx (mssker.asm). Add
  223.      yet more report stuff to mszibm.asm and tweak Help text in msuibm.asm.
  224. 51.  12 June. Just about finished the VT320. Add status line quirks for both
  225.      VT320 and Heath-19, add more reports and gain closer adherence to the
  226.      real hardware for both kinds.
  227. 52.  Add Tek support for Wyse-700 high resolution monitors (with special
  228.      display adapter board), from Mikko Laanti. Beware that currently there
  229.      is no "presence" test and selecting the Wyse may hang the machine if
  230.      not present.
  231. 53.  Add a feature to packet reading: if two Control-C's arrive in succession
  232.      then treat them as if the local user had typed Control-C, but only if
  233.      Control-C is neither the start of packet nor end of line character.
  234. ---------
  235. 54. 15 June. Add fuller character set support in the VT320 emulator. Vis -
  236.  Character sets in VT320 and VT102 modes:
  237.   ASCII ("B"/94)
  238.   ISO Latin-1 ("A"/96)
  239.   DEC UK-ASCII ("A"/94, available only in VT102 mode)
  240.   DEC Supplemental Graphics ("%5"/94),
  241.   DEC Special Graphics ("0"/94 and "2"/94)
  242.   DEC Technical set (">"/94)   a VT340 item not in a real VT320
  243.   ALT-ROM (Kermit specific, "1"/94/96)
  244.   DEC National Replacement Chars (all 12 sets)
  245.   Startup:
  246.    GL = G0 = G1 = ASCII (or ALT-ROM if selected by SET TERM CHAR ALT-ROM),
  247.    GR = G2 = G3 = ISO Latin-1.
  248.    When an NRC is designated by SET TERM CHAR <country> and selected by
  249.    CSI ? 42 h the NRC table replaces G0..G3 at the time of selection. When
  250.    thus designated and selected incoming characters are forced to 7 bits and
  251.    8-bit Controls (outgoing) is turned off. No designation means no selection.
  252.   Selecting a character set with the wrong sized designator yields no action.
  253.   msxibm, mszibm
  254. 55. Add presence test for Wyse-700 high resolution display adapter. msgibm
  255. 56. Add correction for subtle IBM keyboard Bios bug of hanging a system when
  256.     entering value "240" with the ALT key held down. This is a Bios special
  257.     internal value also used as part of a key's "break" scan code. msuibm
  258. 57. 16 June. Add sensing of Environment SHELL= line, and if present use the
  259.     executable filespec when doing a PUSH within MS Kermit. SHELL= must be
  260.     done manually by saying to DOS  SET SHELL=filespec, not to be confused
  261.     with the SHELL= line in file CONFIG.SYS. Use a complete filespec. mssker
  262. 58. Let Kermit local command DELETE use full wildcards in the filespec.
  263.     Previously a *.* filespec was rejected. Drive being ready is checked
  264.     first. Apply drive ready check to local TYPE command also.
  265. 59. Add first cut at supporting IBM's Extended Bios async server system. User
  266.     installs their EBIOS driver and uses Kermit with SET PORT BIOS<1-4>. The
  267.     rest is supposed to be automatic. Includes sending a BREAK, Hangup, and
  268.     interrupt driven reception. Works via IBM's serial port interrupt
  269.     interceptor (EBIOS). msxibm
  270. --------------
  271. 60. 23 June. Rearrange some SHOW items to gain more screen space. msssho.asm
  272. 61. Refine VT320 emulator in IBM version. Added User Preferred Supplemental
  273.     Set as an internal option: default is DEC Supplemental Graphics ("%5"/94),
  274.     alternative is ISO Latin-1 ("A"/96). msxibm, mszibm.asm.
  275. 62. Writeup of current VT320/VT102/VT52/Heath-19 emulator is in file
  276.     vt320emu.txt.
  277. 63. Add 80/132 column support for AT&T EGA VDC600 video display board. msyibm
  278. 64. 24 June. Improve server's response to reception of FIN/LOGOUT/BYE commands.
  279.     LOGOUT and BYE now execute a HANGUP to break any modem/network connection.
  280.     If DISABLE FIN has been given to the server then server mode is not
  281.     exited; this allows a server to run perpetually yet lets users logout of
  282.     the micro and have the line hungup. When SET SERVER LOGIN <user pass> has
  283.     been given to the server then FIN/LOGOUT/BYE all logically logout that user.
  284. 65. Permit REMOTE command responses to be redirected. Syntax is to add
  285.     > filespec   to the end of the command line holding REMOTE etc. In such
  286.     a case a received file-like response will be treated the same as a
  287.     GET or RECEIVE (filename collision avoidence/renaming, etc). Any legal
  288.     DOS filename is allowed, including device names. Be aware that the
  289.     REMOTE command line is scanned from the end toward the beginning to find
  290.     a ">" redirection symbol and may see one you wish to go to the host; in
  291.     that case end the command line on a new ">" with no following characters.
  292.     The empty filespec will prevent redirection.
  293.     Example: REM dir > x.x    sends directory listing to file x.x
  294.              REM dir >*.txt >    shows directory listing on screen for files
  295.                 matching host syntax ">*.txt"
  296. 66. 27 June. Fixup loose ends for screen printing in the IBM version. msy, msz
  297. ----------
  298. 67  4 July. Clarify character set options when running as different terminal
  299.     types. Here is the current summary. Comments are more than welcome.
  300.  
  301.   VT320        Character set storage areas
  302.         G0            G1, G2, and G3
  303.  
  304.   Any 94 char set            Any 94 or 96 char set
  305.   ASCII ("B"/94) default         G1 default is ASCII ("B"/94),
  306.                     G2 and G3 defaults are
  307.                          ISO Latin-1 ("A"/96)
  308.   Special Graphics ("0"/94, "2"/94)    
  309.   Alt-Rom ("1"/94) (MS Kermit only)
  310.   Supplementary Graphics ("%5"/94)
  311.   Technical (">"/94) (from VT340)
  312.   User Preferred, UPSS, if Suppl Gr.    UPSS if ISO Latin-1 or Suppl Gr.
  313.   National Replacement Characters are forced into all sets when activated
  314.    by CSI ? 42 h but only if a <country> has been previously selected by
  315.    SET TERMINAL CHARACTER-SET <country>.
  316.  
  317.   VT102        Character set storage areas
  318.         G0 and G1        G2 and G3
  319.  
  320.   ASCII ("B"/94) Default        ASCII ("B"/94) Default
  321.   Special Graphics ("0"/94, "2"/94)
  322.   Alt-Rom ("1"/94) (MS Kermit only)
  323.   Supplementary Graphics ("%5"/94)
  324.   Technical (">"/94) (from VT340)
  325.   National Replacement Characters    Always ASCII ("B"/94)
  326.    are selected and activated by
  327.    SET TERMINAL CHARACTER-SET <country>
  328.    and affect only G0 and G1.
  329.   [Note: there are several variations of DEC VT10x; the emulator comes closest
  330.    to the VT102 as rendered in the DEC Rainbow computer. A real VT320 in VT100
  331.    mode removes access to G2 and G3; the VT102 has G2 and G3 holding ASCII.]
  332.  
  333.   VT52 is used as a sub-mode of a VT320 (default) or a VT102.
  334.   Only GL = G0 with ASCII is available. ESC F loads line drawing graphics,
  335.   ESC G reloads ASCII.
  336.  
  337.   Heath-19. Same as for VT52 in non-ANSI mode, but while in ANSI mode
  338.   ESC [ 10 m and ESC [ 11 m duplicate the ESC F and ESC G operations.
  339.  
  340.   A correllary is that changing terminal types by SET TERMINAL resets
  341.   character sets to their default states (perhaps with NRCs).
  342.  
  343.   Briefly, VT102 mode automatically forces use of NRCs if a country has
  344.   been selected, and they occupy G0 and G1. Similarly, for VT102 mode
  345.   G2 and G3 are forced to hold ASCII. No NRCs are available under VT52
  346.   and Heath-19 modes. Also, when NRCs are active incoming characters
  347.   have their high bit removed. Undoubtedly, there will be future refinements
  348.   in this complex area, including doing something useful with SET TRANS IN.
  349.   [My Nation's birthday was spent on this National problem.] msx/y/zibm
  350.  
  351. 68. Attempt to dampen complaints about CSI 0 m forcing IBM PC display adapters
  352.    into "dim" mode. The strategy is now use the MSK startup screen intensity,
  353.    or that specified by SET TERMINAL COLOR 0/1, as "DEC normal" and the
  354.    alternative as "DEC bold." Thus a DOS level bold display yields emulation
  355.    of "DEC normal" as bold and emulation of "DEC bold" shows as "IBM dim",
  356.    unless of course the opposite were true in which case the opposite becomes
  357.    true(!). Got it?
  358. 69. Fix problem of SET TERMINAL COLOR not taking effect immediately in Tek
  359.    emulation. msgibm
  360. 70. 5 July. Correct command exit procedures for FIN/LOGOUT/BYE when acting as
  361.     a server. mssser.asm
  362. 71. Move control sequence parser to file msscmd.asm for use in terminal 
  363.     emulation as well as in ISO level file transfers. msscmd, mszibm.
  364. 72. 9 July. Add support in msxibm.asm of the National Semiconductor 16550A
  365.     UART chip in receiver fifo mode. This chip is a plug-in replacement for
  366.     the ubiquitous 8250 and 16450 UARTs found in PC/XT's and AT's, resp.
  367.     In fifo mode a 16 character receiver buffer is available in the UART
  368.     itself. The chip is programmed to interrupt MS Kermit when 8 characters
  369.     are in the buffer or when fewer are present but 4 character times have
  370.     elapsed without any characters having been removed. The strong advantage
  371.     of the chip is that buffer: it greatly reduces problems associated with
  372.     insufficient cpu speed to service the UART, such as when operated above
  373.     38400 baud. Beware: the 16550(no A) has serious bugs and cannot be 
  374.     operated in fifo mode (early production runs of PS/2's have a 16550,
  375.     later runs have a 16550A). National Semi chip number 16550AFN, cost is
  376.     about $US24. Special thanks go to Danne Norstedt, danne@stacken.kth.se,
  377.     and to Campbell Scientific of Logan Utah for providing helpful advice
  378.     about this chip. Another be aware of: 8250(no letter) has bugs, 8250B
  379.     is a v. slow bug fix edition, 8250A is a faster largely bug free edition,
  380.     16450 is the AT bus speed (8 MHz) version, 16550 has bugs, 16550A is
  381.     the desired object. Also, the 16550A must be specifically programmed by
  382.     the applications program to obtain fifo mode, otherwise it runs like a
  383.     16450/8250A. With the fifo in operation a 8 MHz 1 wait state AT has
  384.     the MSK file transfer throughput of a 20 MHz 386, and fewer serial port
  385.     overrun problems from concurrent disk i/o. PS/2 tests are desired.
  386. 73. 26 July. Add IBM-PC commands SET TERMINAL KEYPAD {NUMERIC, APPLICATION}
  387.     where numeric is the default, and revise the Tek emulator disable cmd
  388.     to be SET TERMINAL TEK4010 {c/r, DISABLE, ENABLE}, where c/r both enables
  389.     and changes the terminal type but adding enable or disable does not change
  390.     the terminal type. msxibm, mszibm.
  391. 74. Add command SET DUPLEX {HALF, FULL}. This functions with modem signals RTS
  392.     and CTS to request and receive permission to transmit characters. The
  393.     line turning/line release character is that used for packet End of Line,
  394.     normally a carriage return. Selecting half duplex turns on local-echo
  395.     and disables flow control; selecting full duplex turns off local-echo
  396.     and enables flow control (which still may be to use none). The CTS
  397.     interlock is bypassed if modem signal DSR is not asserted (no modem). An
  398.     approximate 10 second timeout is imposed on blocked sending; exceeding
  399.     the timeout forces out the character regardless of CTS. Half and full
  400.     duplex are not effective for network ports, and half duplex plus packet
  401.     sliding windows is a sure loser. mssset, msssho.
  402. 75. Add heuristic to file sender: if windowing is inactive then consider a
  403.     NAK out of the window (not the currently active packet) to be an ACK for
  404.     the currently active packet, to accomodate non-windowing Kermits, but if
  405.     windowing is active then that NAK means resend all unACK'd packets.
  406.     The current file receiver does not employ NAKing outside the window.
  407.     Using a NAK to substitute for an ACK is risky business, in my opinion,
  408.     but so many existing Kermits, including MSK 2.32, send it that we have
  409.     no alternative.
  410. 76. 5 August. Correct problem of working filename being remembered after
  411.     SEND-ing has finished.
  412. 77. Make the "active" packet size shown in help files react more quickly to
  413.     SET WINDOW and SET RECEIVE or SEND PACKET commands.
  414. 78. By popular demand allow keyboard verbs to be embedded in text strings.
  415.     The changes are currently in msuibm.asm, the end of proc keybd and new
  416.     proc keysv. msuibm, and really for all msu files. Example syntax of a
  417.     difficult string is two right arrow keys: {\{krtarr}\{krtarr}}. The 
  418.     leading brace is required to avoid the string being read as a single
  419.     verb and the inner braces delineate verb names.
  420. 79. 6 August. Let National Replacment Character set become active in VT320
  421.     mode when the user states the SET TERMINAL CHARACTER-SET command, rather
  422.     than waiting for the host to do so. Differs now from a real VT320. mszibm
  423. 80. 8 August. Bug fixes. Correct SET SEND PACKET <length> to really act as an
  424.     upper limit. Correct small problems with item 78 above. msssen, mssset.
  425. 81. In msuibm.asm set variable ttyact (Connect mode active) to zero when sending
  426.     strings so networks will get the whole string in one packet. ttyact is set
  427.     non-zero on the last string character to force out the packet at that time.
  428. 82. Move terminal emulator control code from msxibm.asm to msyibm.asm to
  429.     balance file sizes. Just cut and paste.
  430. 83. 21 August. Add protection against wierd codes in CSI <..> z and ESC c
  431.     terminal reset commands. Tnx to Terry Kennedy. mszibm
  432. 84. Add 132 column support for STB's VGA/EM and VGA/EM-16 VGA boards. msyibm
  433.     Tnx to Terry Kennedy
  434. 85. IBM PC Keyboard: let typewriter Enter key be defined separately from ^M.
  435. 86. Upon testing transparent printing with a real VT320 simplify emulator
  436.     simplify the code in mszibm to handle this case. In particular when
  437.     emulating a VT102 absorb CSI 6 i which is sent by DEC's ALL-IN-ONE package
  438.     and is absorbed by VT102s (but not by VT320's).
  439. 87. 3 Sept. Add SET TERMINAL DECnet node name to IBM PC version. Includes
  440.     both LAT and CTERM interfaces; must be used with DECnet-DOS. msxibm
  441. 88. Add SET PORT NOVELL as an alternative type to UB-One, Int 6Bh network
  442.     interface. Use NASI/NACS with Novell NetWare. Add unassigned keyboard verb
  443.     \knethold to invoke the Int 6Bh session "HOLD" command. In addition, let
  444.     \khangup hangup the current session but leave others going. msxibm, msuibm.
  445. 89. Add corrections in msyibm.asm from Terry Kennedy. Add code reduction in
  446.     msscmd, mssser, etc from Jack Bryans.
  447. 90. 10 Sept. Add fine points to SET PORT responses. msxibm, msyibm, msssho.
  448.     Include all known network names in SHOW COM display.
  449. 91. Add to IBM-PC command SET TERMINAL REPLAY the ability to quit early with
  450.     Control-C. msxibm, msuibm
  451. 92. Add control of DOS "BREAK ON, OFF" within Kermit to keep it off while
  452.     Kermit is in control. mssker
  453. 93. Internal improvements in packet decoder. mssfil
  454. 94. 11 Sept. Revise parts of SET PORT for cases of missing or incompatible
  455.     hardware UARTs (both cases yield Bios serial port usage). msxibm
  456. 95. 22 Sept. Change Server LOGIN parameter to be enabled as a default, but
  457.     a lack of a username and password from SET SERVER LOGIN will cause checks
  458.     to by bypassed. The current LOGIN keyword is now LOGIN rather than
  459.     LOGIN-BYPASS. DISABLE ALL also defeats LOGIN (know your callers).
  460. 96. Set the default server timeout (interval between NAKs while waiting for
  461.     business) to be zero rather than three times the normal packet timeout.
  462. 97. Allow the file transfer keyboard controls Control-C,E,X,Z to be typed
  463.     as just alphabetic letters (case insensitive), to aid the handicapped.
  464. 98. Add SET TERMINAL BELL {AURAL, VISUAL}. Visual blinks the screen by
  465.     reversing the video for 40 milliseconds plus screen writing time.
  466. 99. Modify default prompt to be MS-Kermit, to agree with the vernacular.
  467. 100. Bug fixes in file receiving code related to file closure/deletion.
  468. 101. Tektronix support additions (some of much, very unstable).
  469.     ESC / x1; y1; dx; dy; pattern y
  470.         fill rectangle whose lower left corner is x1,y1 and width
  471.         and height are dx,dy with a pattern. 
  472.  
  473.         Pattern            description
  474.         1            solid foreground color
  475.         2            halftone foreground
  476.         3            lines going up
  477.         4            lines going down
  478.         5            horizontal lines
  479.         6            vertical lines
  480.         7            slanted cross-hatching
  481.         8            vertical cross-hatching
  482.         9            checkerboard
  483.   Note: the patterns are locked to absolute 0,0 so that smaller regions
  484.   are aligned with larger regions. Each pattern is a tiling 8x8 pixel cell.
  485.   Pattern values outside the range 1..9 result in use of the currently
  486.   defined pattern value; omitting the pattern field in the escape sequence
  487.   is one way of employing the currently defined pattern (forces 0).
  488.  
  489.       ESC @ through ESC H        select fill pattern
  490.   Patterns are as listed above, with the correspondence of 1=@, 2=A, 3=B,
  491.   4=C, 5=D, 6=E, 7=F, 8=G, 9=H.
  492.  
  493.     ESC / Pn d            set pixel operation kind
  494.  
  495.         Pn            description
  496.         0            OR dots using foreground coloring
  497.         1            write using background coloring
  498.         2            XOR using foreground coloring
  499.         3            write using foreground coloring
  500.   The default pixel op is OR and is reinstated upon screen clearing.
  501.  
  502.   The VT340 DCS below is parsed but presently causes no action:
  503.     DCS P1; P2; P3 q string ST    Sixel Data string
  504.     where P1 is an obsolete pixel size parameter
  505.           P2 0 or 2 means write 0 bits in background color
  506.              1 means do not touch 0 bits
  507.           P3 is ignored (horizontal grid size)
  508.           string includes
  509.         chars 3fh to 7eh    code for six pixels placed vertically
  510.                     with least significant bit at the top
  511.         ! Pn char        repeat Sixel char Pn times
  512.         " Pan; Pad; Ph; Pv    set raster attributes
  513.         # Pc; Pu; Px; Py; Pz    set coloring attributes for Sixels
  514.         $ (dollar sign)        return to left margin on this line
  515.         - (minus sign)        return to left margin on line below
  516.  
  517. 102. Place Tektronix material, file msgibm.asm, into a separate code segment
  518.      named "code2", include reference to code2 in mssdef.h, and introduce
  519.      suitable near/far call interfacing in msgibm.asm. Lots to do here.
  520. 103. 27 Sept. Reduce word BAUD to obscurity but accept as SPEED alternative.
  521. 104. Add mathematical form of IF statements. The form is
  522.     IF [NOT] <operator> <value1> <value2> <command>
  523.      where <operator> is < or = or >
  524.      <value1 or value2> is a 16 bit Kermit number (backslash may be omitted),
  525.      or keywords ARGC, COUNT, or ERRORLEVEL.
  526.      ARGC is 1 + number of arguments in the currently active Macro/Take file,
  527.      and each Macro/Take file has an individual copy (similar to COUNT).
  528.      Only the first two letters of these three words is checked. Subsititution
  529.      variables are permitted anywhere.
  530.      The math equivalent is  IF <value1> <operator> <value2>, i.e. reverse
  531.      Polish notation.
  532.      Examples:    IF < ARGC 2 echo there were no arguments to this macro/Take
  533.              IF NOT = 3 ERRORLEVEL echo not at errorlevel 3
  534. 105. Add command ASKQ as a non-echoing version of ASK. 
  535. 106. 30 Sept. Permit optional LAT password in SET PORT DECnet node password
  536.      command. Password is ignored if not using a LAT connection. Thanks to
  537.      Terry Kennedy, Terry@spcvxa.Bitnet, for corrections to DEC's manual.
  538. 107. Include support of Intel's OpenNET network over NetBios. Code is by
  539.      Fred Richter of Intel, add'l mods by me. His comments, paraphrased:
  540.  
  541.      "Command "SET PORT OPENNET nodename" opens a terminal connection to
  542.      RMXII, RMXIII, UNIX386 5.3.2, or Xenix 3.5 systems running the
  543.      OpenNET SW. The changes are fairly trivial, since the actual network
  544.      interface on the PC is NETBIOS, but with some MINOR changes for node
  545.      naming conventions, and a small handshake at session startup.
  546.      Also, some minor tweaks to the NETBIOS support for better error detection
  547.      (I hope), and allowing more overlap of network receives with PC
  548.      processing since we run NETBIOS (and ISO transport) on a smart card."
  549.     Fred Richter, Intel Corp., 516 231-3300, fred@polyof.poly.edu
  550.      Nice to have you aboard, Fred and Intel, and thanks for the tweaks.
  551.  
  552. 108. Add more escape sequences to Tek emulator:
  553.      ESC / Pn a  or  ESC / Pn b  or  ESC / Pn c  set user definable line
  554.      drawing patterns. Pn is a 16 bit number, expressed in ascii, and the
  555.      lsb is plotted first. Three such user patterns are available.
  556.      ESC x  and  ESC y  and  ESC z  select one of the three above line
  557.      drawing patterns.
  558.  
  559.      DCS P1; P2; P3 q string ST    Sixel Data string  now works. P1 is ignored
  560.      and so are the set raster and set color subcommands, for now.
  561. 109. Revise Show Statistics screen to be multicolumnar.
  562. 110. 2 Oct. Add rectangle drawing command to Tektronix emulator
  563.     ESC / P1; P2; P3; P4 x
  564.     where P1 is the Tek x coord of the lower left corner
  565.           P2 is the Tek y coord "   "  "     "    "
  566.           P3 is the height in Tek coord
  567.           P4 is the width in Tek coord
  568. 111. 3 Oct. Added to Tektronix emulator
  569.     ESC / 2 h    set destructive space condition
  570.     ESC / 2 l    reset "        "    "       (default)
  571.     ESC / 9 h    set destructive backspace condition
  572.     ESC / 9 l    reset "        "       "    (default)
  573.       Destructive mode writes a whole character cell in the background color.
  574.       Add additional rectangle fill patterns of
  575.       10 = dots
  576.       11 = horizontal herringbone
  577.       12 = vertical herringbone
  578.       13 and above = draw border without filling
  579. 112. 7 Oct. Put back terminal emulation fast char insert/delete code into
  580.      msyibm.asm and revise mszibm.asm to match, to stop complaints of
  581.      flickering cursor. Other systems will need to revise their code too (not
  582.      a major thing). Add a couple more small fixes to msyibm.asm.
  583. 113. Include support for DEC LK250 keyboards (cross between regular DEC LK201
  584.      and an IBM Enhanced keyboard), from Terry Kennedy, Terry@spcvxa.Bitnet,
  585.      St. Peter's College. Support requires presence of TSR program MSLK250.COM
  586.      (either from the Kermit area of Columbia University as file MSLK250.ASM
  587.      and/or MSLK250.BOO or use the equivalent program from Digital Equipment
  588.      Corporation itself). The TSR manages the keyboard to switch between DEC
  589.      and DOS modes so that MS Kermit will use DEC mode when in Connect mode
  590.      and DOS mode otherwise (such as at the Kermit command line, in DOS, etc).
  591.      This is accomplished automatically. Key mappings are arranged to use DEC
  592.      labeled keys for the standard Kermit functions, with special Kermit
  593.      operations such as screen rollback using the same keys as on regular IBM
  594.      keyboards. The TSR program uses interrupt 15h with a signature of 1234h.
  595.      An AT (80286) machine or higher is needed to operate the LK250 keyboard.
  596.      New code is in files msuibm.asm, msxibm.asm, and msyibm.asm.
  597. 114. In the NetBios receive packet code let the error code of request cancelled
  598.      be an allowable deficiency (yields no error and no new data). From
  599.      Fred Richter. msxibm.asm
  600. 115. 11 Oct Add cmd SET TRANSMIT {Fill-empty-lines, Line-Feeds-sent} {ON, OFF}
  601.      This enhances the script TRANSMIT (raw upload) command to send a space
  602.      for an empty line (helps some file systems) and/or send a LF when one
  603.      appears in the source file (general flexibility though not needed
  604.      normally). Defaults are both off. mssdef.h, mssset, msssho, mssscp.asm.
  605. 116. 17 Oct. Correct bugs with SET PORT DEC Password parsing and do more
  606.      thorough presence detection with interrupts 69h (CTERM) and 6ah (LAT).
  607.      Thanks to Terry Kennedy. Slightly revise DECnet error msgs. msxibm.asm
  608. 117. Install recognition of backslash notation in the prompt portion of ASK
  609.      and ASKQ. mssset.asm. Correct ordering of help for "REMOTE ?". mssser.
  610. 118. Let DEC's LK250 keyboard COMPOSE key be mapped as ESC (\27). msuibm
  611. 119. Include Terry Kennedy's improved support TSR MSLK250.ASM. Terry says
  612.      that DEC has similar code embedded in their products, but not as a TSR.
  613. 120. Slightly improve response to user typed XOFF while in Connect mode: let
  614.      this stop all reading of the "serial port", and cancel this stoppage if
  615.      MS Kermit sends any other character afterward. msxibm.asm
  616. 121. 21 Oct. Correct display of \127 as a padding character. msssho.
  617. 122. Add to WRITE <log> <object> <text> command:
  618.     <log> can also be SCREEN
  619.     <object> can also be ARGC, COUNT, or ERRORLEVEL
  620. 123. Add recognition of command REMOTE KERMIT SET <rest of a SET command>
  621.      while acting as a server. mssser.asm
  622. 124. Add elements of ISO file transfer facilities.
  623.     SET FILE {BINARY, TEXT}        binary means literal, text means
  624.                     regular or can have translation of
  625.                     character sets.
  626.     SET TRANSFER CHARACTER-SET {LATIN1, TRANSPARENT}
  627.     SET FILE CHARACTER-SET {CP437, CP850, CP860, CP863, CP865}
  628.     SET FILE WARNING {ON, OFF}    same as SET WARNING
  629.      These items are skeletons for the most part. mssset,msssho,mssrcv,msssen,
  630.      and mssdef.h
  631. 125. Add automatic recognition of the active IBM Code Page. Shows with
  632.      SHOW FILE command. mssker.asm
  633. 126. 22 Oct. Modify SET TRANSMIT command to work as follows:
  634.     SET TRANSMIT Fill-empty-line {NONE, SPACE, character}
  635.     SET TRANSMIT PROMPT <character>
  636.     SET TRANSMIT Line-Feeds-sent {ON, OFF}
  637.      Where character can be a single ordinary character or \number form.
  638.      The settings are visible via the SHOW SCRIPT command.
  639.      mssscp.asm, mssset.asm, msssho.asm, and mssdef.h
  640. 127. Add command alias SET LOG for the regular LOG command.
  641. 128. Revise SHOW LOG display. Change default session log name from KERMIT.LOG
  642.      to SESSION.LOG. msssho.asm
  643. 129. Change Visual Bell word "aural" to "audible." msyibm.asm
  644. 130. Undo "improvement" of Control-S typed by user stops reading immediately.
  645.      At least one Emacs user complained that it suppressed normal Emacs output
  646.      for the Search command. No easy way out, sorry, aside from using
  647.      \Kholdscrn keyboard verb. msxibm.asm
  648. 131. 24 Oct. Bug fixes, to WRITE <log> ARGC and COUNT, and to LOG SESSION,
  649.      plus other small fixes. msster.asm, msssen.asm, msssho.asm
  650. 132. 2 Nov. Change command confirm request msg to "press ENTER to execute
  651.      command", and a couple related to use press and ENTER. msscmd, msssho,
  652.      mssset, msssen, msster.asm.
  653. 133. Embellish SET PORT DEC command by allowing the host name to be "*" to
  654.      display a list of known LAT service names (does not make a connection).
  655. 134. 6 Nov Add SET TERMINAL CHARACTER-SET TRANSPARENT to list of char sets.
  656.      This causes the VTxxx emulator to use the native display adapter chars
  657.      for bytes 0a0h-0ffh (160-255 decimal). Bytes 80h-9fh are still 8-bit
  658.      control codes. Pseudo character set ident of "?"/96 is used and the
  659.      set is assigned to G2. mszibm.asm, msyibm.asm
  660. 135. Add command REPLAY <filespec> which does the same as SET TERM REPLAY
  661.      and does not replace the latter. Code for this moved to msster.asm.
  662.      mssker.asm, msster.asm, msyibm.asm
  663. 136. 7 Nov. Minor corrections for more "press ENTER" msgs. Make SET TERM
  664.      CHARACTER-SET take effect immediately. Correct DISABLE KERMIT command.
  665.      msssen.asm, mssser.asm, mssset.asm, mszibm.asm
  666. 136. Add to VT320 emulator SET TERMINAL CHARACTER-SET options the keywords
  667.      LATIN-1, DEC-MCS, and modify the meaning of the ASCII parameter.
  668.      LATIN-1, the default, is ordinary ASCII in GL and ISO-LATIN-1 in GR.
  669.      DEC-MCS (Multinational Character Set) is ASCII in GL and DEC Supplemental
  670.      Graphic in GR. Now ASCII means strip any 8th bit of characters before
  671.      use. Both of these GR tables are mapped to set G2. Note that Latin-1
  672.      and DEC Supplemental Graphic (DEC-MCS) differ slightly by Sup Gr having
  673.      spaces for several characters and a couple of substitutions; DEC-MCS
  674.      is hardly worth considering compared to Latin-1. mssdef.h,msyibm,mszibm.
  675. 137. 8 Nov. Modify the filtering of Connect mode bytes by SET DISPLAY 7/8.
  676.      Previously SET DISPLAY 7-bit applied only to characters about to be
  677.      displayed but not those destined for printing or occuring within Escape
  678.      sequences. Transparent printing from Unix machines, in particular,
  679.      encountered problems because the screen had the parity bit removed but
  680.      the printed text did not, nor did the recognizer of the printing done
  681.      Escape sequence ESC [ 4 i. Now all characters entering the terminal
  682.      emulator have their high order bit affected by SET DISPLAY, including
  683.      those destined for the Session log file and printer. Users of 8-bit
  684.      wide channels should say SET DISPLAY 8-BITS to recognize bytes with
  685.      their high bit on.  msyibm.asm, mszibm.asm
  686. 138. 11 Nov Add version 3.0 flavor to DEC Rainbow files msurb1.asm and
  687.      msxrb1.asm. Gary Stebbins, stebbins@guiduk.enet.dec.com, did the most
  688.      recent updates a day ago.
  689. 139. 12 Nov Change command SET WARNING {ON, OFF}, aka SET FILE WARNING {ON,
  690.      OFF}, to include setting of NO-SUPERSEDE. This new setting causes
  691.      rejection of a received disk file which already exists. The local file
  692.      name is changed to NUL and an 'X' is returned in the first available ACK.
  693.      Frequent requests have been made for this setting. mssfil.asm
  694. 140. Add details to SET ATTRIBUTES command to use keywords of {ON, OFF,
  695.      CHARACTER-SET, DATE-TIME, LENGTH, and TYPE}. ON and OFF apply to all
  696.      attributes and the default is ON. If an attribute is OFF then it is
  697.      not sent and during reception it is ignored. mssset, msssho, mssrcv,
  698.      msssen, msgibm, msyibm, mssdef.h.
  699. 141. Correct a serious bug introduced accidently in a recent edit cycle. A
  700.      text message slipped into the code for sending ending abnormally and 
  701.      that could crash a machine (data in place of code) if the retry limit
  702.      were exceeded and other circumstances. Affected file is msssen.asm.
  703.      Updated msscom.asm to eliminate chances of a stray Message: appearing
  704.      rarely accidently.
  705. 142. 17 Nov. For Half Duplex operations of IBM-PC version add test of UART
  706.      transmitter shift register being empty before dropping RTS (was holding
  707.      register being empty, which could truncate the final character).
  708. 143. 19 Nov. Add command SET UNKNOWN-CHARACTER-SET {KEEP, CANCEL}, where
  709.      Keep is the default. It does nothing at the present time. mssset, msssho,
  710.      mssrcv.asm.
  711. 144. Refresh Kermit's idea of the current character-set Code Page when
  712.      returning from a PUSH to DOS. Remove option ASCII from SET FILE
  713.      Character-set, leaving only Code Page entries. Default to CP437 if
  714.      no Code Page information is available. mssker, mssset, mssdef.h
  715. 145. Force DOS to write out the Transaction log as we write it, for DOS 3.30
  716.      and later. mssfil.asm
  717. 146. 25 Nov. Allow attributes packet to be sent as multiple packets if the
  718.      pkt length is short. Place as many attributes into a packet as possible.
  719.      Trouble arises with attribute of Date-Time and with the command 
  720.      MAIL filespec user@node  when extremely short packets (~20 bytes) are
  721.      used. If these items fit into no packet the file is not sent (via forcing
  722.      a protocol file-skip operation the same way as if the user typed "X").
  723.      SET FILE TYPE BINARY uses attribute ""B8 and TYPE TEXT uses "#AMJ.
  724.      SET TRANSFER CHAR TRANSPARENT uses attribute *!A and CHAR LATIN1 uses
  725.      *!C followed by another attribute of 2&I2/100. Note that while SET FILE
  726.      TYPE BINARY informs a knowledgable host about files we send, this has
  727.      no effect on files sent from a host or server (it's our attribute but
  728.      only the file sender emits attributes packets; sending hosts and servers
  729.      will operate with their own default settings for each file). msssen.asm,
  730.      mssser.asm, mssrcv.asm, mssdef.h.
  731. 147. Create the tables needed to translate between ISO 8859-1 Latin1 and
  732.      Code Pages (CP437, 850, 860, 863, 865). These are now found in mssfil.asm
  733.      and parts were in mszibm.asm. This activates SET TRANSFER CHARACTER-SET
  734.      and SET FILE TYPE commands. A closest approximation is made in the tables
  735.      with non-translatable characters replaced by a query mark ("?"). Checked
  736.      with CP437 and CP850, but not with the others. The tables are shared with
  737.      terminal emulation. As yet the NRC tables need updating for CPs other
  738.      than CP437. Note that Kermit uses the settings given by the user unless
  739.      an arriving attributes packet says perform differently. Server mode
  740.      defaults to the user's settings after each operation. Also be aware that
  741.      transferring material under SET TRANSFER CHAR LATIN1 rules means
  742.      a) codes 00h - 7fh remain intact (as GLeft)
  743.      b) codes 80h-ffh being sent are put through the CPnnn to LATIN1 table,
  744.      c) incoming codes 80h-9fh are regarded as 8-bit controls (no translation)
  745.      d) incoming codes 0a0h-0ffh are translated back to the active Code Page,
  746.      e) thus nearly all the IBM-PC line drawing characters are converted to
  747.      query marks. CP850 gives the best overall match to LATIN1.
  748.      SET UNKNOWN-CHARACTER-SET command is still a dummy. 
  749.      mszibm.asm, mssfil.asm.
  750. 148. In file msxibm.asm ensure that the HANGUP command runs with the serial
  751.      port initialized and leaves with it shut down. Tnx to Drew Derbyshire
  752.      for noticing a possible uninitialized state at command execution time.
  753. 149. 26 Nov. Move most screen display utilities from mssfil.asm to msssho.asm
  754.      to balance file sizes and to leave room in mssfil.asm for character set
  755.      functions. mssfil, msssho.asm
  756. 150. SET UNKNOWN-CHARACTER-SET {KEEP (default), CANCEL} is now active. If an
  757.      incoming file specifies a character set which we do not know (we know
  758.      only "I2/100" Latin1 at the moment) then either reject the file if
  759.      CANCEL has been selected or use the default character set from the
  760.      SET TRANSFER CHARACTER-SET command if the default KEEP option is active.
  761.      mssrcv, msssen, mssset.asm
  762. 151. Put in skeleton character set command  LOAD <filespec>  to read a user
  763.      defined pair of translation tables. It is inactive at this time. Specs
  764.      are from file ISOK4.TXT (ISO-Kermit, Draft 4, 24 August 1989). mssfil.asm
  765. 152. 29 Nov 1989. Modify ECHO command to permit display of 8-bit characters.
  766.      Correct problem of not recognizing script labels if they terminated in
  767.      a Tab character. mssscp.asm
  768. 153. 30 Nov. Correct problem of skipping colon of a label if it were the first
  769.      character of a macro definition. mssscp.asm
  770. 154. Add VT320 identification string item, "4" to say the emulator supports
  771.      Sixel Graphics. The VT320 ident string (response to SET TERM/INQUIRE) is
  772.     <ESC> [ ? 63; 1; 2; 4; 8; 9 c
  773.      meaning VT300-series, 132 col, printer, Sixel graphics, UDkeys, NRC.
  774.      Unix systems might validate a VT300-series device by parsing just
  775.      <ESC> [ ? 63 <other parameters> c   and ignore the small digits after
  776.      "63" because the terminals have a variable list of enhancements (the
  777.      small digits tell which ones). The MS Kermit VT102 emulator reports
  778.      itself with  <ESC> [ ? 6 c. VMS version < 5 sites can say
  779.      $ SET TERM/DEVICE=VT200  because VT300 recognition started in VMS 5.
  780.      mszibm.asm
  781. 155. 3 Dec. Revise character attributes to remove an explicit "2" attribute
  782.      but include the character set information as data following 'C' in the
  783.      "*" attribute (results from SET FILE TYPE TEXT). mssrcv, msssen
  784. 156. Activate command LOAD <filespec> to load a file transfer character set
  785.      translation table for use as a Code Page substitute under the SET FILE
  786.      CHARACTER-SET USER-DEFINED command. The User-defined tables (one for
  787.      incoming, one for outgoing text) are initially defined as identities and
  788.      are then revised by the LOAD command. Still a few loose ends of book
  789.      keeping here. The table is 128 bytes long and forms GR (high bit set
  790.      codes). Notice that the file sender needs to SET TRANSFER CHARACTER-SET
  791.      LATIN1 for these tables to be invoked (set the receiver the same way if
  792.      attributes packets for that purpose are unavailable). mssfil.asm
  793. 157. Add National Replacement Character sets for each of five Code Pages,
  794.      60 tables overall. The appropriate table is selected by going to DOS for
  795.      the current CP setting (CP437 is the default) and to the SET TERMINAL
  796.      CHARACTER-SET for the country. Enlarged other tables to 128 bytes for
  797.      easy reuse by both terminal emulator and file transfers. mszibm.asm
  798. 158. 4 Dec. Add support to send a BREAK for 3Com Bridge Application Program
  799.      Interface (BAPI) Bios serial port path with external session management.
  800.      Presence test is Int 14h, function ax=0af00h, returns ax=0af01h and
  801.      carry bit clear.
  802. 159. 6 Dec. Create global equ VERSION as 300 (hundreds = major, tens/units =
  803.      minor revs) in mssdef.h. Thus 300 is MS Kermit 3.00 in the vernacular.
  804.      mssdef.h, mssker, msssho, msster
  805. 160. Add item VERSION to command  IF <numerical operator> <item> <item> ...
  806.      joining ARGC, COUNT, ERRORLEVEL, and a number or a \number. mssscp
  807. 161. Validate operation of MSK as an external "terminal emulator" for use
  808.      with FTP Software Inc's TNGLASS.EXE program containing the Bios serial
  809.      port attachment point. This permits Kermit to be used across the TCP/IP
  810.      Telnet interface via SET PORT BIOS1. TNGLASS.EXE was updated on 6 Dec 89
  811.      to cure a small problem so don't use an earlier version. FTP's syntax is
  812.      "TNGLASS <node> -e Kermit <any other MSK command line args>". msxibm
  813. 162. 8 Dec. Revise screen saving procedure in msyibm.asm. Try to allocate a
  814.      memory buffer from DOS at save time with the current screen size (vs
  815.      allocating a fixed size one at Kermit startup). If memory is unavailable
  816.      then use video page 1 but fail, no save, if Environments are in use.
  817.      Deallocate the old save buffer if a new one is required by a new screen
  818.      dimension. This strategy preserves unusual sized text screens when Tek
  819.      graphics are used; previously those text screens went to video page 1 yet
  820.      graphics cleared that page. A typical 80x25 screen requires 4KB. msyibm
  821. 163. Invent new (last?) method of changing terminal emulation between 80 and
  822.      132 columns. If the internal method fails to find a matching video board
  823.      then invoke file  COLS80.BAT or COLS132.BAT  to do the work. The PATH=
  824.      list will be searched if necessary. If the appropriate file cannot be
  825.      found then the screen change request from the host is ignored. The
  826.      serial port is shut down and restarted around execution of the .BAT file,
  827.      the same as if PUSHing to DOS which in fact is basically what we do.
  828.      The user is expected to put commands in these files to change the screen
  829.      dimensions, usually by running a program supplied by the video board
  830.      vendor. The active screen is the same as during terminal emulation.
  831.      mssker.asm, msyibm.asm
  832. 164. 10 Dec. Start sketching in Tek graphics dump screen to file procedures.
  833.      File format is according to TIFF version 5.0 rules. File name is
  834.      TIFF0001.TEK, or higher ending numbers if name collisions occur. Screen
  835.      dump is initiated by keyboard verb \Kdump (IBM default keys Control-End),
  836.      the same as for text screens. Only one graphics screen dump per file.
  837.      Presently this is active only for CGA screens. Tested with WordPerfect
  838.      version 5.0, but this gives me two divide errors and the StripOffsets
  839.      element seems to need an immediate value rather than a pointer to a set
  840.      of values. Probably just me, but I'm not too sure about it.
  841.      No image compression done at this stage. mssfil.asm, msgibm.asm
  842. 165. 11 Dec. More TIFF work in file msgibm.asm. With the aid of my freshly
  843.      updated PC Paint (MS version) which imports/exports TIFF files now all
  844.      display adapters using basic CGA organization (CGA, Herc, Wyse, AT&T,
  845.      DEC,...) can write uncompressed files acceptable to both WordPerfect 5
  846.      and PC P. EGA stuff is in progress. Expect major code revisions in msgibm
  847.      as the colored EGA section develops. Renamed output files to be
  848.      TEKPLT01.TIF et seq to be easier to remember and type. msgibm.asm
  849. 166. 13 Dec. Add command  REMOTE SET <host syntax>  as a synonym for command
  850.      REMOTE KERMIT SET <host syntax>. They do exactly the same thing. mssser.
  851. 167. 14 Dec. Revise the whole REMOTE SET business to send/receive the commands
  852.      below as dedicated protocol items rather than as text. They go into
  853.      type G packets with data of S<length of code string><code as ascii>
  854.      <length of value string><value as ascii>. Taken from Columbia draft
  855.      document on the subject.
  856.        Command                                Code   Values
  857.       REMOTE SET ATTRIBUTES IN ALL            132   0 = OFF, 1 = ON
  858.       REMOTE SET ATTRIBUTES IN LENGTH         133   0 = OFF, 1 = ON
  859.       REMOTE SET ATTRIBUTES IN TYPE           134   0 = OFF, 1 = ON
  860.       REMOTE SET ATTRIBUTES IN DATE           135   0 = OFF, 1 = ON
  861.        X  REMOTE SET ATTRIBUTES IN CREATOR        136   0 = OFF, 1 = ON
  862.        X  REMOTE SET ATTRIBUTES IN ACCOUNT        137   0 = OFF, 1 = ON
  863.        X  REMOTE SET ATTRIBUTES IN AREA           138   0 = OFF, 1 = ON
  864.        X  REMOTE SET ATTRIBUTES IN BLOCK-SIZE     139   0 = OFF, 1 = ON
  865.        X  REMOTE SET ATTRIBUTES IN ACCESS         140   0 = OFF, 1 = ON
  866.        X  REMOTE SET ATTRIBUTES IN ENCODING       141   0 = OFF, 1 = ON
  867.        X  REMOTE SET ATTRIBUTES IN DISPOSITION    142   0 = OFF, 1 = ON
  868.        X  REMOTE SET ATTRIBUTES IN PROTECTION     143   0 = OFF, 1 = ON
  869.        X  REMOTE SET ATTRIBUTES IN GPROTECTION    144   0 = OFF, 1 = ON
  870.        X  REMOTE SET ATTRIBUTES IN SYSTEM-ID      145   0 = OFF, 1 = ON
  871.        X  REMOTE SET ATTRIBUTES IN FORMAT         146   0 = OFF, 1 = ON
  872.        X  REMOTE SET ATTRIBUTES IN SYS-INFO       147   0 = OFF, 1 = ON
  873.        X  REMOTE SET ATTRIBUTES IN BYTE-COUNT     148   0 = OFF, 1 = ON
  874.  
  875.       REMOTE SET ATTRIBUTES OUT ALL           232   0 = OFF, 1 = ON
  876.       REMOTE SET ATTRIBUTES OUT LENGTH        233   0 = OFF, 1 = ON
  877.       REMOTE SET ATTRIBUTES OUT TYPE          234   0 = OFF, 1 = ON
  878.       REMOTE SET ATTRIBUTES OUT DATE          235   0 = OFF, 1 = ON
  879.        X  REMOTE SET ATTRIBUTES OUT CREATOR       236   0 = OFF, 1 = ON
  880.        X  REMOTE SET ATTRIBUTES OUT ACCOUNT       237   0 = OFF, 1 = ON
  881.        X  REMOTE SET ATTRIBUTES OUT AREA          238   0 = OFF, 1 = ON
  882.        X  REMOTE SET ATTRIBUTES OUT BLOCK-SIZE    239   0 = OFF, 1 = ON
  883.        X  REMOTE SET ATTRIBUTES OUT ACCESS        240   0 = OFF, 1 = ON
  884.        X  REMOTE SET ATTRIBUTES OUT ENCODING      241   0 = OFF, 1 = ON
  885.        X  REMOTE SET ATTRIBUTES OUT DISPOSITION   242   0 = OFF, 1 = ON
  886.        X  REMOTE SET ATTRIBUTES OUT PROTECTION    243   0 = OFF, 1 = ON
  887.        X  REMOTE SET ATTRIBUTES OUT GPROTECTION   244   0 = OFF, 1 = ON
  888.        X  REMOTE SET ATTRIBUTES OUT SYSTEM-ID     245   0 = OFF, 1 = ON
  889.        X  REMOTE SET ATTRIBUTES OUT FORMAT        246   0 = OFF, 1 = ON
  890.        X  REMOTE SET ATTRIBUTES OUT SYS-INFO      247   0 = OFF, 1 = ON
  891.        X  REMOTE SET ATTRIBUTES OUT BYTE-COUNT    248   0 = OFF, 1 = ON
  892.     
  893.       REMOTE SET FILE TYPE                    300   0 = TEXT, 1 = BINARY
  894.        X  REMOTE SET FILE NAMES                   301   0=CONVERTED, 1=LITERAL
  895.       REMOTE SET FILE COLLISION               302   0 = RENAME, 1=REPLACE,
  896.                                               X 2 = BACKUP,  X 3 = APPEND,
  897.                                                     4 = DISCARD, X 5 = ASK
  898.        X  REMOTE SET FILE REPLACE                 303   0=PRESERVE, 1=DEFAULT
  899.           remote set file incomplete (MSK only)      310   0 = discard, 1 = keep
  900.       REMOTE SET INCOMPLETE                   310   0 = DISCARD, 1 = KEEP
  901.  
  902.           REMOTE SET BLOCK-CHECK                  400 number (1, 2, or 3)
  903.           REMOTE SET RECEIVE PACKET-LENGTH        401 number (10-9024)
  904.       REMOTE SET RECEIVE TIMEOUT              402 number(any,0=no timeout)
  905.       REMOTE SET RETRY                        403 number (any, 0=no limit)
  906.       REMOTE SET SERVER TIMEOUT               404 number(any,0=no timeout)
  907.       REMOTE SET TRANSFER CHARACTER-SET       405 Character Set Designator
  908.           REMOTE SET WINDOW-SLOTS                 406 number (1-31)
  909.  
  910.      All the commands above may be sent from a client MS Kermit. However,
  911.      those items marked with an "X" will be failed by an MS Kermit server.
  912.      In addition,
  913.      o    REMOTE SET FILE INCOMPLETE is added as a natural synonym for
  914.     REMOTE SET INCOMPLETE.
  915.      o  The acceptable strings for incoming REMOTE SET TRANSFER CHARACTER-SET
  916.     are "A" for TRANSPARENT and "I2/100" for LATIN1.
  917.     We need a better scheme than the "A" above.
  918.      o  All incoming REMOTE SET ATTRIBUTE commands are collapsed to make IN
  919.         and OUT refer to the same attribute for transfers in either direction.
  920.      o  The server responds with text messages of either "Command succeeded"
  921.         or "Command failed".
  922.      mssdef.h, mssfil.asm, msssen.asm, mssser.asm, mssset.asm, msssho.asm
  923. 168. Save the entire set of flags and transmission parameters (dtrans, trans)
  924.      around server mode, to help prevent setting being carried over from
  925.      session to session. I probably missed a few things, considering the
  926.      quantity of SETs available. mssser.asm
  927. 169. 15 Dec. Add a Tektronix screen report to both text and Tek emulators.
  928.      Request  is ESC [ ? 256 n   or for 8-bit text mode  CSI ? 256 n
  929.      Response is ESC [ ? 256; height; width; num colors n
  930.          where height and width are the graphics screen dimensions and
  931.     num colors is 1 or 16. Pure text mono systems (no graphics) return
  932.      the special response  ESC [ ? 256; 24; 80; 0 n.
  933.      If 8 bit controls are active text mode responds with CSI.
  934.      ESC [ ? ...n  is a DEC private sequence but 256 seems like a safe
  935.      unused parameter. This report was suggested by WordPerfect Corp.
  936.      msgibm.asm, mszibm.asm
  937. 170. Change the file transfer character set used if an Unknown kind is
  938.      specified in an attributes packet to be TRANSPARENT (no translation).
  939.      mssrcv.asm
  940. 171. Modify failure responses to REMOTE SET to be an Error packet with msg
  941.      of "Unknown server command" or "Command failed", as appropriate. mssser
  942. 173. 16 Dec. Add to Tek emulator support of VT340 style Sixel color palette
  943.      commands. The VT340 has 16 palette registers. They may be initialized
  944.      to other than the startup default foreground color within the command
  945.  
  946.          DCS P1; P2; P3 u string ST    Sixel Graphics command
  947.  
  948.     where string holds substring   # Pc; Pu; Px; Py; Pz
  949.     Pc is the VT340 palette register to be set, 0-15
  950.     Pu is the units of color information, 1 = HLS, 2 = RBG
  951.     For Hue Lightness Saturation (from Tektronix 4027 color standard):
  952.         Px = Hue angle, 0-360 degrees. The colors are mapped around
  953.         the color wheel in 60 degree segments as Hues
  954.              0-29  = blue
  955.             30-89  = magenta (blue + red)
  956.             90-149 = red
  957.            150-209 = yellow (red + green)
  958.            210-269 = green
  959.            270-329 = cyan (green + blue)
  960.            330-359 = blue
  961.         Py = Lightness, 0-100%, Pz = Saturation, 0-100%
  962.           Lightness    Sat = 51-100    Sat = 11-50     Sat = 0-10
  963.           86-100    bold white    bold white     bold white
  964.           71-85        bold hue    bold white     bold white
  965.           57-70        bold hue    grey (dim white) grey
  966.           43-56        bold hue    dim hue         black
  967.           29-42        dim hue        grey         grey
  968.           14-28        dim hue        black         black
  969.            0-13     black        black         black
  970.         Note that Py = Pz = 50 gives the widest spectrum.
  971.  
  972.     For RGB: Px = red, 0-100%, Py = green, 0-100%, Pz = blue, 0-100%
  973.         If any color exceeds 50% then the bold bit is turned on for
  974.         the ensemble (IBM ega display adapter constraint for RGBi).
  975.  
  976.     Palette registers can be selected by the substring
  977.         # Pc    followed by a non-numeric char other than ";"
  978.             where Pc is the VT340 palette register, 0-15.
  979.         Palette registers are reloaded with the current foreground
  980.         color when the emulator is (re)initialized.
  981.      This addition necessitated some redesign of control sequence parsing in
  982.      the Tek emulator so retesting is warranted.  msgibm.asm
  983. 174. 17 Dec. Correct small bug about file name collision handling introduced
  984.      this week during the REM SET changes. mssfil.asm
  985. 175. Correct recent bug of not recognizing word SPACE in SET TRANSMIT. Tnx
  986.      to Bert Tyler for spotting it. Also revise slightly the TRANSMIT code
  987.      involving sending filler or LF characters. mssscp.asm
  988. 176. 18 Dec. Add small change to file msyibm so that when using Half Duplex
  989.      and the terminal emulation has NewLine mode on then the RTS line is not
  990.      dropped until both CR (normal line turn char) and LF have been sent.
  991.      Done specially for a company using Kermit in half duplex mode via radios.
  992.      Small reminder here: the RTS/CTS handshaking is effective only if
  993.      a) SET DUPLEX HALF has been stated AND b) the "modem" asserts DSR; if no
  994.      DSR then no handshaking. Don't send trailing LF's from scripts in HDX.
  995. 177. 19 Dec. Add to Tek emulator recognition of
  996.     DCS p S (M Pm (H Ph L Pl S Ps )) ST  and
  997.     DCS p S (M Pm (R Pr G Pg B Pb )) ST
  998.      as meaning initialize VT340 palette register Pm with HLS or RGB values.
  999.      No specs available on these two at the present time, reverse engineering.
  1000.      msgibm.asm
  1001. 178. Fix a serious bug which kills the system when SET TRANSFER CHAR LATIN1
  1002.      and sending a file to a host. The problem was a destroyed register in
  1003.      the character set translator and appears as a 65KB packet length.
  1004.      mssfil.asm
  1005. 179. 20 Dec. Modify the LOAD command to be LOAD TRANSFER-CHARACTER-SET. mssfil
  1006.      Fix tiny bug with REM SET TRANSFER command. mssser.
  1007. 180. 21 Dec. Tek bug fixes etc. Item 177 turns out to be a Regis command and
  1008.      will be removed entirely.
  1009. 181. Add VT320 and Tek terminal emulator sensitivity to
  1010.      Request      CSI 2 $ u  (terminal state, color palette report)  which has
  1011.      Responses of ESC P 0 $ s ESC \   (null report) for monochrome video, or
  1012.      ESC P 2 $ s <5 byte palette group>/<next group>/..<16th group> ESC \
  1013.       where a 5 byte group is
  1014.       Pc ; Pu ; Px; Py; Pz    Pc is palette number, 0-15 in that order
  1015.                      Pu = 2 is reporting in RGB (no HLS report)
  1016.                 Px, Py, Pz are the RGB values, respectively
  1017.                  as 0, 30, or 60 per cent. "/" between groups.
  1018.      Note that the Request can have an optional second Parameter indicating
  1019.      whether the Response should use HLS or RGB. It is ignored here.
  1020. 182. Add Tek screen to TIFF file for ega screens. File is uncompressed.
  1021. 183. Tek emulator: add current Kermit version number and local time/date to
  1022.      TIFF files.
  1023. 184. Set Tek emulator colors according to VT340 default map: palette 0 is
  1024.      background, palette 7 is foreground, as follows -
  1025.      palette    b/w    color        palette      b/w     color
  1026.      0 bkgnd    black    black        8    dim grey dim grey
  1027.      1        white    bold blue    9    grey     blue
  1028.      2        white    bold red    10    grey     red
  1029.      3        white    bold green    11    grey     green
  1030.      4        white    bold magenta    12    grey     magenta
  1031.      5        white    bold cyan    13    grey     cyan
  1032.      6        white    bold yellow    14    grey     yellow/brown
  1033.      7 foregnd  grey    grey        15    white     white
  1034. 185. 26 Dec. Much much work on Tek and Sixel. Revise item 181 RGB report to
  1035.      say 0, 40%, or 80% for none, regular, or bold colors, to help WP/VMS 5.0.
  1036.      Also revise determination of incoming RGB coloring such that a bold
  1037.      color will surpress existance of any dim colors. Removed item 177
  1038.      material. msgibm
  1039. 186. Again, for WP/VMS make arrival of Sixel Graphics command while in text
  1040.      emulator be a very special case. When this happens feed the arriving
  1041.      command, DCS P1; P2; P3 q string ST to the Tek emulator in 7 bit form
  1042.      and require the Tek emulator to return control to the text emulator after
  1043.      the final ST (ESC \ to Tek) has arrived. This lets Sixel Graphics be
  1044.      plotted on the Tek screen and text on the text screen. When we do this
  1045.      set the Tek "text cursor" (where the first Sixel datum goes) be set to
  1046.      the equivalent position of the regular text cursor, with accomodation
  1047.      for different numbers of text lines between the two systems. The user
  1048.      can toggle terminal types, ALT white-minus key or verb \Ktermtype, to
  1049.      review graphics or text screens (WP/VMS makes a total hash of staying
  1050.      on one screen or the other, constantly bouncing back and forth, so the
  1051.      user is best left with the toggle to outwit these activities).
  1052.      msgibm, msyibm, mszibm.asm
  1053. 187. For the moment include elementary cursor steering and screen clear 7-bit
  1054.      escape sequences in Tek mode. These are  ESC [ Pn @, ESC [ Pn A,
  1055.      ESC [ Pn B, ESC [ Pn C, ESC [ Pn D, ESC [ Pn E, ESC [ Pn F, ESC [ Pn G,
  1056.      ESC [ Pr; Pc H, ESC [ Ps J, ESC [ Ps K, ESC [ Pn X, ESC [ Pn a, and
  1057.      ESC [ Pr d. The text-like rows and columns are scaled from the text
  1058.      screen rows but use 80 column width (640 dots across the screen). The
  1059.      hope was, at the time, to have WordPerfect/VMS do it's operations all
  1060.      on the Tek graphics screen. Alas, WP/VMS is not so obliging and it makes
  1061.      a mess when characters overwrite themselves.  msgibm
  1062. 188. Other smoothing out of items in the VT300 emulator. mszibm.asm
  1063.      I must take this opportunity to express deep thanks to Terry Kennedy
  1064.      for sending Fed Ex a complete set of VT340/VT330 manuals for this week's
  1065.      recent work. That's help when most needed. I could not have survived
  1066.      without them! Thanks also to Paul Whitmer of WordPerfect for many long
  1067.      conversations and a temporary copy of WP/VMS v5.0.
  1068. 189. Try to preserve text mode screen dimensions around interludes of Tek
  1069.      screens. This may be only partly successful but works with 132x43 line
  1070.      screens on my Video 7 VGA board. msgibm
  1071. 190. More small adjustments to coloring in Tek mode, and other tiny fixes.
  1072. 191. 30 Dec. Many changes to file msgibm.asm. Add recognition of ESC M
  1073.      (cursor reverse index, go up), ESC Z (report ident, ident is now that
  1074.      of the VT320). Gobble up most unknown escape sequences. Improve logical
  1075.      pixel operations. Internals include recognition of destructive space
  1076.      and destructive backspace. External new command SET TERMINAL GRAPHICS
  1077.      CHARACTER-WRITING {TRANSPARENT (default), OPAQUE}  also controls
  1078.      destructive spacing. Include sensing of TerminalR and TerminalS escape
  1079.      sequences and ESC [ Pr; Pc f. msgibm, msyibm, msgibm
  1080. 192. Support of cursor steering escape sequences within Tek mode now scale
  1081.      the motions of cursor up/down, relative and absolute, and cursor to
  1082.      absolute row and/or column to the size of the text mode screen. Cursor
  1083.      forward and backward relative and all screen clearing escape sequences
  1084.      work on the Tek 8x8 dot character size. Beware that Tek and text screen
  1085.      sizes usually share no common factor so registration will suffer. msgibm
  1086. 193. VT320 mode and Sixel commands. The current strategy is when the VT320
  1087.      emulator senses a Sixel DCS it sends a screen clear to the Tek emulator
  1088.      followed by the DCS preamble and then switches to Tek sub-mode to
  1089.      process all further incoming material; the user must manually toggle
  1090.      back to text mode emulation (ALT-). It also forces on OPAQUE character
  1091.      writing and destructive backspacing for Tek mode. Clearing the Tek screen
  1092.      also sets the cursor to the upper left corner. msgibm, msyibm, mszibm
  1093. 194. Let Tek mode sense 8-bit control codes. Other 8-bit characters have their
  1094.      high bit removed. SET DISPLAY 7/8 determines whether the emulators see
  1095.      the high bit. Destructive backspacing will likely be the default 
  1096.      condition in a day or two. msgibm
  1097. 195. Send the Tek (VT340) color palette settings report to the host, upon its
  1098.      request, with short pauses between each character to help reduce host
  1099.      overrun. It's a long DCS. VMS users may well require SET TERM/HOSTSYNC
  1100.      with WordPerfect/VMS, and even that may not be enough. The symptom of
  1101.      overrun is WP/VMS returns Sixel pictures with unexpected colorings. WP
  1102.      figure (picture) and page previews look pretty nifty! msgibm
  1103. 196. Various code fixes suggested by Jack Bryans. Several mss*.asm files.
  1104. 197. Create workaround for sending the color palette report (item 193 above).
  1105.      Remove per character timing, insert a fixed timing window of 15 sec
  1106.      to wait to send while being held by an XOFF, sound bell if we have to
  1107.      force that blockage. This speeds sending the DCS if the host is able to
  1108.      empty its buffer promptly. msgibm, msxibm
  1109. 198. 1 Jan. Minor work on transfer character sets. Modify mssfil, mssrcv,
  1110.      msssen, and mssset to use a table of character sets for SET TRANSFER
  1111.      CHARACTER-SET. The table is short (Transparent, Latin1) but expandable.
  1112.      Let the receiver select the character set for decoding according to that
  1113.      specified in the arriving attributes packet (else the user specified
  1114.      character-set if no attribute). Unknown character sets are treated as
  1115.      before: default of Keep the file and use Transparent translation at the
  1116.      receiver, or Cancel, via SET UNKNOWN-CHARACTER-SET {KEEP, CANCEL}.
  1117. 199. Minor tweaks to file msgibm.asm and msxibm.asm for small things. It
  1118.      seems that the Telnet software available here is unable to cope with
  1119.      the sending of the long color palette DCS report of VT340's and quits
  1120.      the connection abruptly part way through the sequence. Adding pauses
  1121.      helped some but not much and were removed.
  1122. 200. Remove (comment out) the LOAD command pending further discussions.
  1123.      mssker.asm, mssset.asm
  1124. 201. 7 Jan. Add new command SET TRANSLATION KEYBOARD {ON, OFF}. ON is the
  1125.      default. Add mechanisms to translate printable keycodes read from DOS
  1126.      or the Bios from the current Code Page to the current SET TERMINAL
  1127.      CHARACTER-SET for on the wire transmission. Keys reported as scan code
  1128.      (special ones) are not affected. Translation occurs before keycodes
  1129.      are looked up in tables for SET/SHOW key. The Terminal Character-sets
  1130.      which are not affected are ASCII, ALT-ROM, and TRANSPARENT. The current
  1131.      Code Page for keyboard translation is checked whenever Connect mode is 
  1132.      entered or whenever a SET/SHOW key command is issued. This mechanism is
  1133.      effective only in Connect mode and during SET/SHOW KEY. It does not
  1134.      apply to scripts (the TRANSMIT and OUTPUT commands in particular).
  1135.      mssdef.h, mssset, msssho, msuibm, msyibm, mszibm.
  1136. 202. Note that selection of DEC Technical Char set by the host will not
  1137.      appear correctly under Code Page 850 because that CP lacks far too
  1138.      many of the math symbols. Use CP437, or others, instead.
  1139. 203. Final work on detailed graphics, in particular enforcing pixel logical
  1140.      operations on rectangle drawing. Add escape sequence
  1141.      ESC / Px; Py; Pwidth; Pheight; Ppat z    (HDS 2000/3000 terminal)
  1142.      to mean fill rectanglular area from lower left corner Px, Py of width
  1143.      Pwidth and height Pheight with pattern Ppat and then enclose it with
  1144.      a line. It is a combination of ESC / ...x and then ESC / ...y. The
  1145.      pattern is drawn with the current pixel op code set by ESC / Pd d
  1146.      (default is draw in foreground, skip 0 bits); the line is drawn in
  1147.      foreground absolute (skip 0 bits). All use Tek coordinates. msgibm
  1148. 204. Add commands  ESC / P1; P2;...; P8 C  and  ESC / P1; P2;...; P8 D  to
  1149.      permit host definition of two filling patterns. Each Pn is interpreted
  1150.      as 8 bits of the pattern with P1 being the top of an 8x8 pattern. Empty
  1151.      parameters are used as binary 0's. HDS2000/3000 terminal. msgibm
  1152. 205. Extend the escape sequence to select patterns so that ESC @ .. ESC M
  1153.      select patterns 1..14. The last two are the host definable patterns in
  1154.      item 204 above. msgibm
  1155. 206. Revise Tek screen clearing slightly to not reset the pixel operation code
  1156.      nor the line drawing pattern. msgibm
  1157.      Here is a summary of the pixel operation codes, settable by ESC / Pd d
  1158.         Pd    pixel operation
  1159.     0    draw 1's in foreground color
  1160.     1    draw 1's in background color
  1161.     2    XOR 1's with foreground color
  1162.     3    write absolute, 1's in foreground and 0's in background color
  1163.     The rectangle commands are now -
  1164.     ESC / Px; Py; Pw; Ph x        draw a box, using the currently active
  1165.                 line pattern. Px, Py is the lower left corner
  1166.                 and Pw; Ph are the spans, all in Tek coords.
  1167.                 Drawn in absolute foreground color
  1168.  
  1169.     ESC / Px; Py; Pw; Ph; Pf y  fill a rectangular area with pattern Pf
  1170.                 Uses the current pixel op
  1171.  
  1172.     ESC / Px; Py; Pw; Ph; Pf z  do ESC /...y filling and then do ESC /...x
  1173.                 border
  1174.  
  1175.      And this is a short test sequence demonstrating the commands -
  1176.     ESC [ 44 m        set blue background in palette 0
  1177.     ^L            clear the screen, set to blue bkgnd
  1178.                 Note on ^L: it used to reset the coloring and
  1179.                 line drawing patterns, but no longer.
  1180.     ESC [ 31; 42 m        set new red fore (pal 7), green back (pal 0)
  1181.     ESC / 3 d        set pixel op code of 3, force both colors
  1182.     ESC / 5;5 ;100;100 ;3 z bordered and filled (slants) rectangle
  1183.                 should be red lines with green bkgnd fill and
  1184.                 the rest of the screen still blue (ESC / 3 d)
  1185. 207. Include binary patch facility from Jack Bryans, jafw801@calstate.Bitnet.
  1186.      At Kermit startup file MSKERMIT.PCH is searched for and if found it is
  1187.      read and executed. If the file is invalid Kermit still loads after an
  1188.      error message, provided the errors are not fatal. File format is
  1189.  
  1190.    300    ; optional comment (where 300 is the version number for the patches)
  1191.    DS:xxxx xx xx    ; optional comment.  DS (or CS) are case insensitive
  1192.    CS:xxxx xx xx xx    ; locations must be 4 hex chars, contents must be 2
  1193.    And more DS: or CS: lines.
  1194.  
  1195.    Version number mismatches produce a message and no patching.
  1196.    Each source file has a specific label, such as cspker, at the start of its
  1197.    code segment to identify that file's code. File MSSCMD.ASM must be Linked
  1198.    first for the patch mechanism to be effective. File msscmd.asm has the
  1199.    list of such labels for use by the patcher in mssker.asm. All files changed
  1200. 208. Later, revise keyboard character set translation to occur After SET KEY
  1201.    etc code has worked on the keyboard information. Thus, SET/SHOW KEY will
  1202.    indicate the local Code Page pattern but not the on-wire code. msuibm.asm
  1203. 209. 8 Jan, beta-5. Revise support of 3Com BAPI LAN port to use high numbered
  1204.    Bios calls particular to that interface, given the news that 3Com will no
  1205.    longer support the conventional calls. Adds 3Com(BAPI) to the list of
  1206.    SET PORT items. msxibm. Note, the BAPI interface runs with external session
  1207.    management and the Enter Command Mode key is replaced by keyboard verb
  1208.    \Knethold. Comment out load/readln material to free more code space. mssfil
  1209. 210. 9 Jan, beta-6. Correct problem receiving files from systems which declare
  1210.    Binary files with attribute of just "B rather than "B8". Make SET ATT TYPE
  1211.    OFF work correctly. mssrcv.asm
  1212. 211. Ensure the Tek GIN mode termination character is sent intact. msgibm
  1213. 212. Turn off Patch code til the mechanism is more stable. mssker.asm
  1214. 213. 14 Jan, beta-7. Make return from Tek to text mode under host control
  1215.     yield the same text terminal type as when going the other way. msgibm
  1216. 214. Correct two errors in the Code Page to Latin1 tables. mssfil. Correct
  1217.     couple of errors in text emulator cursor save/restore code. mszibm.
  1218.     Strengthen Timeout response in packet reader, in case get out by strange
  1219.     means. msscom.asm
  1220. 215. Fix skipping over XON to host if COLS132.BAT were not found when changing
  1221.     screen width. msyibm.
  1222. 216. Add reset of serial port when entering 3Com BAPI usage condition. msxibm
  1223.      We need to test this on a real BAPI system.
  1224. 217. Increase the number of control sequence parameters allowed from 10 to 16.
  1225.     msscmd.asm
  1226. 218. Small revisions for the Patch code. All files.
  1227. 219. Add SET TRANSFER information to SHOW PROTOCOL screen.
  1228. 220. Modify file sender to use attribute of *!A when the transfer character
  1229.      set is TRANSPARENT and the file type is TEXT. It was *"CA.
  1230. 221. 15 Jan beta-8. Add corrections to msxibm for 3Com BAPI, from John Junod,
  1231.      zj8549@ranger.usma.edu.
  1232. 222. Beta-9 Correct inaccessibility of user defined fill patterns. msgibm
  1233. 223. Modify handling of text mode terminal emulator set/clear reversed video
  1234.      to accomodate color changes while temporarily inverted. Example:
  1235.      ESC [ 33 m (set yellow foreground) ESC [ 7 ; 31 m  reverse video, set
  1236.      red foreground. The latter makes the current (inverted) background red
  1237.      so that a following ESC [ m returns us to a red foreground, as desired.
  1238.      msyibm
  1239. 224. Add embellishment concerning SET EOF Control-Z. Omit consideration of
  1240.      Control-Z if the file TYPE is Binary. Allow consideration when reading
  1241.      a file as TYPE Text, but only if SET EOF Ctlz has been stated. Previously
  1242.      reading paid no attention to this command, now it does. Note that writing
  1243.      can stop on Control-Z but only for the current 512 byte output buffer;
  1244.      new packets cause fresh writing. mssfil
  1245. 225. Correct bug in reaching code to handle user definable fill patterns in
  1246.      Tek mode. msgibm
  1247. 226. Reactivate Patch facility. It can be run (once only) by command PATCH.
  1248.      The command is a no-op after patching has completed. Requires file
  1249.      mskermit.pch to be located somewhere along the path. mssker.asm
  1250. 227. Fix several Latin1 to Code Page 850 characters. mssfil.asm
  1251. 228. Make keyboard verb \kholdscrn, a DEC Hold Screen key, track user typed
  1252.      XON and XOFF; i.e. XON cancels hold screen and XOFF sets it. msxibm.asm
  1253.      and msyibm.asm
  1254. 229. Add extra snow suppression around erasing partial lines, for CGAs. msyibm
  1255. 230. Ensure that SET WINDOW does not lengthen the send or receive packet sizes
  1256.      beyond user specified limits. mssset.asm
  1257. 231. 16 Jan.Beta-10 Remove item 228, to avoid trouble with Emacs (again).
  1258.      Also correct small counting problem with network buffers. msxibm, msyibm
  1259. 232. Modify SET TRANSLATION INPUT for the VTxxx emulator. If it is on and if
  1260.      an incoming character is translated to another value then skip all ISO
  1261.      character set tables and provide that new character directly to the
  1262.      emulator. This will skip over single shifts (leaving them armed and
  1263.      ready) and any GL, GR, G0..G3 assignments. mszibm
  1264. 233. Added small conditional assembly option in mssdef.h to assist building
  1265.      MS Kermit on Xenix systems. The option is to define save_mem for Xenix
  1266.      (or for DOS too) and define it selectively only for MS?IBM.ASM files.
  1267.      A separate Make file has the details. From Fred Richter of Intel,
  1268.      fred@polyof.poly.edu.
  1269. 234. Minor tweaks to text terminal emulator coloring. Small fixes in many
  1270.      places.
  1271. 235. 16 Jan 1990. Release version 3.00.
  1272.  
  1273.